///*
// *  Copyright 2020-2021 Li Fei
// *
// *  Licensed under the Apache License, Version 2.0 (the "License");
// *  you may not use this file except in compliance with the License.
// *  You may obtain a copy of the License at
// *
// *  http://www.apache.org/licenses/LICENSE-2.0
// *
// *  Unless required by applicable law or agreed to in writing, software
// *  distributed under the License is distributed on an "AS IS" BASIS,
// *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// *  See the License for the specific language governing permissions and
// *  limitations under the License.
// */
//package com.pengshun.modules.quartz.config;
//
//import org.quartz.Scheduler;
//import org.quartz.spi.TriggerFiredBundle;
//import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.scheduling.quartz.AdaptableJobFactory;
//import org.springframework.scheduling.quartz.SchedulerFactoryBean;
//import org.springframework.stereotype.Component;
//
///**
// * 定时任务配置
// * @author Li Fei
// * @date 2020年10月10日
// */
//@Configuration
//public class QuartzConfig {
//
//	/**
//	 * 解决Job中注入Spring Bean为null的问题
//	 */
//	@Component("quartzJobFactory")
//	public static class QuartzJobFactory extends AdaptableJobFactory {
//
//		private final AutowireCapableBeanFactory capableBeanFactory;
//
//		public QuartzJobFactory(AutowireCapableBeanFactory capableBeanFactory) {
//			this.capableBeanFactory = capableBeanFactory;
//		}
//
//		@Override
//		protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
//
//			//调用父类的方法
//			Object jobInstance = super.createJobInstance(bundle);
//			capableBeanFactory.autowireBean(jobInstance);
//			return jobInstance;
//		}
//	}
//
//	/**
//	 * 注入scheduler到spring
//	 * @param quartzJobFactory /
//	 * @return Scheduler
//	 * @throws Exception /
//	 */
//	@Bean(name = "scheduler")
//	public Scheduler scheduler(QuartzJobFactory quartzJobFactory) throws Exception {
//		SchedulerFactoryBean factoryBean=new SchedulerFactoryBean();
//		factoryBean.setJobFactory(quartzJobFactory);
//		factoryBean.afterPropertiesSet();
//		Scheduler scheduler=factoryBean.getScheduler();
//		scheduler.start();
//		return scheduler;
//	}
//}
